Spring加载属性文件方式(自动加载优先级问题) / 张生荣 | 您所在的位置:网站首页 › SpringBoot中jsp里面的静态资源js、css、images访问不到 › Spring加载属性文件方式(自动加载优先级问题) / 张生荣 |
目录
Spring加载属性文件
方式1、用xml文件配置
方式2、用注解
对Spring加载顺序的理解
web.xml初始化
spring加载流程
Spring加载属性文件
方式1、用xml文件配置
正常情况下,spring整合mybatis的配置文件的dataSource部分如下 可以将数据库的链接信息写到属性文件中,如下。 jdbc.url=jdbc:mysql://localhost:3306/ssm jdbc.driver=com.mysql.jdbc.Driver jdbc.username=root jdbc.password=123456在spring配置文件中,就可以用${}的形式获取属性信息,但需要加入 标签设置属性文件的路径。即 但是由此会引发另一个问题,自动加载的优先级特别高(就是先实例化) 若org.mybatis.spring.SqlSessionFactoryBean的id为sqlSessionFactory,当自动注入时,org.mybatis.spring.mapper.MapperScannerConfigurer类下的SqlSessionFactory属性会自动注入,然后org.mybatis.spring.SqlSessionFactoryBean也会实例化,而org.mybatis.spring.SqlSessionFactoryBean中含有dateSourse,所以org.springframework.jdbc.datasource.DriverManagerDataSource也会实例化,但是这时属性文件还没有加载,造成程序出错Error setting property values,总而言之就是在属性文件加载之前,类实例化了,结果得不到属性文件中的值。 解决办法 第1步,更改org.mybatis.spring.SqlSessionFactoryBean的id名称,例如factory 第2步,将org.mybatis.spring.mapper.MapperScannerConfigurer中加入,如果用 |
CopyRight 2018-2019 实验室设备网 版权所有 |